1. Field
Embodiments of the invention relate to the field of serial interfaces; and more specifically, to the handling of errors on serial interfaces.
2. Background Information
Routers and other network devices often include network processors that are coupled with hardware search engines by serial interfaces. By way of example, a network processor may transmit a request packet having a search key to the hardware search engine over the serial interface. The hardware search engine may search a database with the search key. The hardware search engine may then transmit a response packet, for example based on a result of the search, to the network processor over the serial interface. Various protocols may be used for the communication over the serial interface, such as an Interlaken Protocol, various analogous proprietary protocols, or the like.
One challenge is that errors often occur during such request-response communications between the network processors and the search engines over the serial interfaces. The errors may due to various possible factors, such as, for example, errors during transmission on the serial interfaces, internal errors in the network processors when generating the request packets, internal errors in the search engines when generating the response packets, or the like. The errors may be quantified or represented by a bit error rate (BER) which represents the rate of errors or the number of errors that occur per unit of time. By way of example, the BER may be calculated as the total number of bit errors divided by the total number of bits transferred during a period of time. Such errors in communications over the serial interfaces generally tend to become even more significant as the speed or bandwidth of the serial interfaces increases.
One possible approach to handle such errors is for the protocol used for the communication over the serial interface, such as, for example, the Interlaken Protocol, the various analogous proprietary protocols, or the like, to report the error through an interrupt. However, one drawback with reporting the error as an interrupt through the protocol layer is that it generally imposes a relatively high overhead to service. By way of example, the relatively high overhead may be due in part to a lack of knowledge by the protocol of what entity to deliver the interrupt to such that the error interrupt may be broadcast to multiple entities, in part to a need to store and handle state associated with the error, and other overhead associated with the protocol reporting the error through an interrupt. Moreover, the Interlaken Protocol generally always induces re-transmission of response packets when errors are detected.